
/**********************************************************************************\
** 文件名称: MainTask.c
** 创建人员: YCG
** 创建日期: 2019-02-08
** 文档描述:
** 版本代号: V0.1
** 版本说明: 初始版本
\********************************************************************************/
#include "MainTask.h"
#include "MessageOut.h"
#include "flash.h"
#include "InitTask.h"
char buf[1000];
extern FATFS* TF_FatFs; 
char file[100];
FRESULT scan_files (
    char* path        /* Start node to be scanned (***also used as work area***) */
)
{
    FRESULT res;
    DIR dir;
    UINT i;
    static FILINFO fno;

	  FIL* fil = MyMalloc(sizeof(FIL));                 //为文件分配空间
	
    res = f_opendir(&dir, path);                     //打开工作目录
    if (res == FR_OK) {
        for (;;) {
            res = f_readdir(&dir, &fno);                      //读取一个目录项
            if (res != FR_OK || fno.fname[0] == 0) break;     //判断是否读到末尾
            if (fno.fattrib & AM_DIR) {                       //如果这是一个目录
                i = strlen(path);                             //获取缓存中路径字符串的大小
                sprintf(&path[i], "/%s", fno.fname);          //获取子目录路径
                res = scan_files(path);                       //进入子目录
                if (res != FR_OK) break;                      //进入失败退出程序
                path[i] = 0;                                  //清楚子目录路径
							
            } else {                                        //如果这是一个文件
					//		f_open(fil,fno.fname,FA_READ);
						//	 f_closedir(&dir);
				 	 // Uprintf("%s/%s:%d\r\n", path, fno.fname,fno.fsize);
							  sprintf(file, "%s/%s", path, fno.fname);
					  	  Uprintf("删除文件%s:%d \r\n",file ,f_unlink( file));
						//	f_close(fil);
            }
        }
        f_closedir(&dir);
    }

    return res;
}
char buff[256];

void MainTask(void * argument)
{
    for(;;)
    {
			FRESULT  yFr;
//	    FIL* fil = MyMalloc(sizeof(FIL));
//			yFr = f_open(fil,"message.txt",FA_READ);
//			
//			Uprintf("f_open %d\r\n",yFr);
//			
//			f_close(fil);
//			MyFree(fil);
		  	strcpy(buff, "/");
        yFr = scan_files(buff);
			
			// vTaskDelay(3);
       vTaskList(buf);
		//	Uprintf("\r\n%s\r\n",buf);
			
			vTaskGetRunTimeStats(buf);
			//Uprintf("\r\n%s\r\n",buf);
			//Uprintf("%s\r\n",pcTaskGetName(NULL));
			
			Uprintf("RTOS 剩余内存：%d\r\n",xPortGetFreeHeapSize());			
			Uprintf("RTOS 最大剩余：%d\r\n",xPortGetMinimumEverFreeHeapSize());			
			Uprintf("HEAP 剩余内存：%d\r\n",GetHeapFreeBytes());			
			Uprintf("HEAP 最大剩余：%d\r\n",GetHeapMinFreeBytes());
			vTaskDelay(2000);
    }
}



/********************************End of File************************************/
